package com.google.precinct.common;

import java.util.List;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.google.gwt.user.client.ui.SuggestOracle;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("precinct")
public interface PrecinctService extends RemoteService {

	SuggestOracle.Response getCitySuggestions(SuggestOracle.Request request);

	List<AddressInfo> getAddressesOnCity(
			String region,
			String province,
			String city,
			boolean unmappedOnly,
			boolean mappedLakingVotesOnly,
			int limit);

//	void addDraftPrecinctLocation(String precinctId,
//			double lat,
//			double lng);

	List<PrecinctInfo> getPrecinctsInBounds(
			double swLat,
			double swLng,
			double neLat,
			double neLng);

	void addAddressGeoLocation(AddressInfo addressInfo,
			double latitude,
			double longitude);

	PrecinctInfo getAllPrecinctInfo(
			CityItem selection,
			String precinctNo);
}
